EC2 AutoScaling で重複した予定されたアクションを実行した際の挙動を確認してみた
はじめに
テクニカルサポートの 片方 です。
今回、EC2 AutoScaling で重複した予定されたアクションを実行した際の挙動を確認する機会があったのでご紹介します。
先に結論から
重複した予定されたアクションは共に実行されます。
マネジメントコンソール、AWS CLI コマンド共にどちらかを先に実行させるといった制御は叶わない。
確認してみた
以下の画像の通り、Cron 式で重複する日時を設定しました。
- 0 13 * * * : 毎日 13:00 JST に 希望するキャパシティが 2 台になる
- 0 13 28-31 * * : 毎月 28-31 の 13:00 JST に希望するキャパシティが 4 台になる
検証日が 9/27 のため、28 日に重複した処理が発生する想定です。
スケールアウトした後に、希望するキャパシティ 1 台にして元に戻しました。
Cron で設定した 2つの予定されたアクションの開始時刻が共に、2024 September 28, 01:00:00 PM +09:00 になりました。
これで準備は完了です。
費用削減のため、一時的に希望するキャパシティ 0 等といった対応にして後日確認します。
次の日になりましたので、希望するキャパシティ 1 にしました。
13:00 になるまで少し様子をみます。
結果...
2 つとも予定されたアクションが実行されました。
At 2024-09-28T04:00:04Z a scheduled action update of AutoScalingGroup constraints to min: 4, max: 4, desired: 4 changing the desired capacity from 1 to 4. At 2024-09-28T04:00:04Z the scheduled action 4-Server executed. Setting min size from 1 to 4. Setting max size from 1 to 4. Setting desired capacity from 1 to 4. At 2024-09-28T04:00:04Z a scheduled action update of AutoScalingGroup constraints to min: 2, max: 2, desired: 2 changing the desired capacity from 4 to 2. At 2024-09-28T04:00:04Z the scheduled action 2-Server executed. Setting min size from 4 to 2. Setting max size from 4 to 2. Setting desired capacity from 4 to 2. At 2024-09-28T04:00:14Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 1 to 2.
アクティビティ履歴より、4-Server のアクションが実行された後に、2-Server のアクションが実行されたことが解りました。
エラーなどは発生せず、明日以降(2024 September 29, 01:00:00 PM +09:00)も重複したアクションが実行されるようになっていました。
今度は希望するキャパシティ 0 に変更を行い、29 日の挙動についても確認しました。
結果、こちらでも前日同様に予定されたアクションが 2 つ共に実行されました。
引き続き検証を行うため、希望するキャパシティ 0 に変更を行い、30 日の挙動も念のため確認しました。
結果は同様に 4-Server のアクションが実行された後に、2-Server の予定されたアクションが実行されました。
まとめ
3 日間の検証結果よりドキュメント記載はないものの、以下の挙動を確認しました。
- 重複した予定されたアクションは共に実行される
ドキュメントにはどちらが先に予定されたアクションを実行されるかといった記述は存在しません。また優先度を指定するといったこともマネジメントコンソール画面上および AWS CLI コマンド においても制御は叶いません。
以上のことからも、スケジュールアクションの設定時に重複が発生しないようにすることをお勧めします。
本ブログが誰かの参考になれば幸いです。
参考資料
- Amazon EC2 Auto Scaling のスケジュールされたスケーリング - Amazon EC2 Auto Scaling
- put-scheduled-update-group-action — AWS CLI 2.17.61 Command Reference
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。